/*
 * @Author: xuetao 3168581151@qq.com
 * @Date: 2025-01-28
 * @LastEditors: xuetao 3168581151@qq.com
 * @LastEditTime: 2025-01-30
 * @Description: 校验工具, 纯静态类(abstract 防止实例化)
 */
abstract class Validator {
  // 用户名验证
  static String? validateUsername(String username) {
    if (username.isEmpty) {
      return "请输入用户名";
    }
    if (username.length < 5 || username.length > 20) {
      return "用户名长度必须在5到20个字符之间";
    }
    if (username.contains(' ')) {
      return "用户名不能包含空格";
    }

    return null; // 返回 null 表示验证通过
  }

  // 密码验证
  static String? validatePassword(String password) {
    if (password.isEmpty) {
      return "请输入密码";
    }
    if (password.length < 6 || password.length > 20) {
      return "密码长度必须在6到20个字符之间";
    }
    if (password.contains(' ')) {
      return "密码不能包含空格";
    }
    if (RegExp(r'[\u4e00-\u9fa5]').hasMatch(password)) {
      return "密码不能包含中文字符";
    }
    return null; // 返回 null 表示验证通过
  }

  // 手机号验证
  static String? validatePhoneNumber(String phoneNumber) {
    if (phoneNumber.isEmpty) {
      return '请输入手机号';
    } else if (!RegExp(r"^1[3-9]\d{9}$").hasMatch(phoneNumber)) {
      return '请输入有效的中国大陆手机号';
    }
    return null;
  }

  // 昵称验证
  static String? validateNikeName(String nickname) {
    if (nickname.isEmpty) {
      return '请输入昵称';
    } else if (nickname.contains(' ')) {
      return "不能包含空格";
    }
    return null;
  }

  // 验证码验证
  static String? validateAuthCode(String authCode) {
    if (authCode.isEmpty) {
      return '验证码不能为空';
    }
    return null;
  }
}
